import request from '../utils/request'

// 获取所有模块信息
export function getAllModuleInfo() {
  return request({
    url: '/module',
    method: 'get'
  })
}

// 修改模块信息
export function changeModuleInfo(id, data) {
  return request({
    url: '/module/' + id,
    method: 'put',
    data: data
  })
}

// 删除模块
export function delModuleInfo(id, data) {
  return request({
    url: '/module/' + id,
    method: 'delete',
    data: data
  })
}

// 新增模块
export function addModuleInfo(data) {
  return request({
    url: '/module',
    method: 'post',
    data: data
  })
}

// 获取该模块下的模型信息
export function getModelInfo(id) {
  return request({
    url: '/model/' + id + '/module',
    method: 'get'
  })
}

// 修改该模块下的模型信息
export function changeModelInfo(id, data) {
  return request({
    url: '/model/' + id,
    method: 'put',
    data: data
  })
}

// 添加该模块下的模型
export function addModel(data) {
  return request({
    url: '/model',
    method: 'post',
    data: data
  })
}

// 删除该模型
export function delModel(id, data) {
  return request({
    url: `/model/${id}`,
    method: 'delete',
    data: data
  })
}

// 获取该模块下的输入文件
export function getFile(id) {
  return request({
    url: `/module/${id}/inputs`,
    method: 'GET'
  })
}

// 修改该模块下的输入文件
export function editFile(inputId, data) {
  return request({
    url: `/inputs/${inputId}`,
    method: 'put',
    data: data
  })
}

// 添加该模块下的输入文件
export function addFile(id, data) {
  return request({
    url: `/module/${id}/inputs`,
    method: 'post',
    data: data
  })
}

// 删除该模块下的输入文件
export function deleteFile(inputId, data) {
  return request({
    url: `/inputs/${inputId}`,
    method: 'DELETE',
    data: data
  })
}

// 文件上传
// export function uploadFiles(type, data) {
//   return request({
//     url: `/files/${type}`,
//     method: 'post',
//     data: data
//   })
// }

export function uploadFiles(type, data, config) {
  const axiosConfig = {
    url: `/files/${type}`,
    method: 'post',
    data: data
  }
  if (config instanceof Object) {
    for (const key in config) {
      axiosConfig[key] = config[key]
    }
  }
  return request(axiosConfig)
}
